#include <bits/stdc++.h>
using namespace std;
const int N=25;
int n,m,k;
struct node{
    int x,y,z;
    bool operator <(const node &rhs)const{
        return z>rhs.z;
    }
}a[N*N+50];
int main(void){
    int l=0;
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            int t;
            scanf("%d",&t);
            if(t!=0){
                a[++l]=node{i,j,t};
            }  
        }
    }
    sort(a+1,a+1+l);
    //第一棵 来回+摘
    if(a[1].x*2+1>k){
        printf("0\n");
        return 0;
    }
    int ans=a[1].z;
    //剩余时间
    int tim=k-(a[1].x+1);
    for(int i=2;i<=l;i++){
        if(tim>=abs(a[i].x-a[i-1].x)+abs(a[i].y-a[i-1].y)+abs(a[i].x)+1){
            ans+=a[i].z;
            tim-=(abs(a[i].x-a[i-1].x)+abs(a[i].y-a[i-1].y)+1);
        }else{
            break;
        }
    }
    printf("%d\n",ans);
    return 0;
}